// 入口函数
$(function () {
  // 1.1 获取裁剪区域的 DOM 元素
  var $image = $('#image')
  // 1.2 配置选项
  const options = {
    // 纵横比
    aspectRatio: 1,
    // 指定预览区域
    preview: '.img-preview'
  }
  // 1.3 创建裁剪区域
  $image.cropper(options)

  // 2. 点击button，input按钮上传图片
  $('#chooseImageBtn').on('click', function () {
    $('#chooseImageInp').click()
  })

  // 渲染图片：change选择文件的时候触发事件，value值发生改变
  $('#chooseImageInp').on('change', function () {
    // console.log(this.value)
    // 1. 获取文件对象
    let file = this.files[0]

    // 非空校验
    if (file == undefined) {
      return layui.layer.msg('上传头像不能为空！')
    }

    // 根据文件对象。生成路径
    let newURL = URL.createObjectURL(file)
    // console.log(newURL)

    // 给浏览图片区域赋值
    $image
      .cropper('destroy')
      .attr('src', newURL)
      .cropper(options)
  })

  // 4. 上传头像
  $('#uploadBtn').on('click', function () {
    //   4.1 把裁剪区域的图片，转换为base64格式的字符串
    let dataURL = $image
      .cropper('getCroppedCanvas', {
        // 创建一个 Canvas 画布
        width: 100,
        height: 100
      })
      .toDataURL('image/png')
    // 将 Canvas 画布上的内容，转化为base64格式

    // console.log(dataURL)

    // 4.2 发送ajax
    axios({
      method: 'post',
      url: '/my/update/avatar',
      // 我们要自己拼接成：a=1&b=2&c=3
      //  注意点：只编译 dataURL ，不要编译前面的属性和等号
      data: 'avatar=' + encodeURIComponent(dataURL)
    }).then(res => {
      //成功回调
      console.log(res)

      if (res.data.status != 0) {
        return layui.layer.msg(res.data.message)
      }

      // 4.3 成功提示 + 渲染父页面头像
      layui.layer.msg('恭喜您，更改用户头像成功！')
      window.parent.getUserInfo()
    })
  })
})
